/*
 * Project:     My Project Work, Copyright (C) 2011
 * Created at:  05.08.2011
 */
package de.myprojectwork.model;

import de.myprojectwork.common.util.MyProjectWorkException;
import de.myprojectwork.model.dto.AbstractDto;
import de.myprojectwork.model.dto.Project;
import java.util.List;

/**
 * Zugriff auf die Daten.
 * 
 * @author Chris Holdschuh
 */
public interface DataManipulationModel {
    
    <T extends AbstractDto> List<T> get(Table table, Class<T> clazz, Project project) throws MyProjectWorkException; 
    
    <T extends AbstractDto> void save(List<T> list) throws MyProjectWorkException;
    
    <T extends AbstractDto> void save(T entry) throws MyProjectWorkException;
    
    <T extends AbstractDto> void delete(T entry) throws MyProjectWorkException;
    
    void reorgTodoOrderNumbers(Project project) throws MyProjectWorkException;
}
